package com.ruoyi.system.service.impl;

import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.SecurityUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.system.domain.FileGroup;
import com.ruoyi.system.mapper.FileGroupMapper;
import com.ruoyi.system.service.IFileGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 *
 * (企业图集，用于门户网站配置组)
 * 文件组Service业务层处理
 *
 * @author cjie
 * @date 2021-06-13
 */
@Service
public class FileGroupServiceImpl implements IFileGroupService {
    @Autowired
    private FileGroupMapper fileGroupMapper;

    /**
     * 查询文件组
     *
     * @param id 文件组ID
     * @return 文件组
     */
    @Override
    public FileGroup selectFileGroupById(Long id) {
        return fileGroupMapper.selectFileGroupById(id);
    }

    /**
     * 查询文件组列表
     *
     * @param fileGroup 文件组
     * @return 文件组
     */
    @Override
    public List<FileGroup> selectFileGroupList(FileGroup fileGroup) {
        return fileGroupMapper.selectFileGroupList(fileGroup);
    }

    /**
     * 新增文件组
     *
     * @param fileGroup 文件组
     * @return 结果
     */
    @Override
    public AjaxResult insertFileGroup(FileGroup fileGroup) {
        FileGroup source = fileGroupMapper.selectByGroupKey(fileGroup.getGroupKey());
        if(source != null){
            return AjaxResult.error("取值KEY已存在");
        }
        fileGroup.setCreateTime(DateUtils.getNowDate());
        fileGroup.setCreateBy(SecurityUtils.getUsername());
        return fileGroupMapper.insertFileGroup(fileGroup) > 0 ? AjaxResult.success() : AjaxResult.error();
    }

    /**
     * 修改文件组
     *
     * @param fileGroup 文件组
     * @return 结果
     */
    @Override
    public AjaxResult updateFileGroup(FileGroup fileGroup) {
        FileGroup source = fileGroupMapper.selectByGroupKey(fileGroup.getGroupKey());
        if(source != null && !source.getId().equals(fileGroup.getId())){
            return AjaxResult.error("取值KEY已存在");
        }
        fileGroup.setUpdateTime(DateUtils.getNowDate());
        fileGroup.setUpdateBy(SecurityUtils.getUsername());
        return fileGroupMapper.updateFileGroup(fileGroup) > 0 ? AjaxResult.success() : AjaxResult.error();
    }

    /**
     * 批量删除文件组
     *
     * @param ids 需要删除的文件组ID
     * @return 结果
     */
    @Override
    public int deleteFileGroupByIds(Long[] ids) {
        return fileGroupMapper.deleteFileGroupByIds(ids);
    }

    /**
     * 删除文件组信息
     *
     * @param id 文件组ID
     * @return 结果
     */
    @Override
    public int deleteFileGroupById(Long id) {
        return fileGroupMapper.deleteFileGroupById(id);
    }
}
